React Styling Approaches Reference
1. Global CSS vs. Component-Specific CSS
- Global CSS: Styles defined in a single file (e.g.,
global.css) that affects all components - Component-Specific CSS: Styles scoped to individual components for better organization and maintenance
a. CSS Modules
- Files named with
.module.cssextension (e.g.,Component.module.css) - Styles are scoped only to components that import them
- Prevent class name collisions by auto-generating unique identifiers
- Imported as JavaScript objects:
import styles from './styles/Resume.module.css' - Classes accessed via object properties:
className={styles.resume}
b. Regular CSS Files
- Files named with
.cssextension (e.g.,Resume.css) - Styles are globally accessible to all components
- Potential for class name collisions
- Imported without variable assignment:
import './styles/Resume.css'
c. Combining Both Approaches
// Using module CSS conditionally
<div className={condition && styles.item}>
// Combining global and module classes
<div className={`container ${styles.item}`}>
Recommended Folder Structure
/src
/components
Component1.jsx
Component2.jsx
...
/styles
Component1.module.css
Component2.module.css
global.css
...